CC ?= gcc

CFLAGS	?= -std=c11 -Wall -Wextra -Wpedantic -Werror -g
LDFLAGS ?= -Wl,--as-needed -Wl,--no-undefined

OUTPUT_DIR ?= .

SRCS	= main.c functions.c
OBJS	= $(SRCS:.c=.o)
TARGET	= $(OUTPUT_DIR)/exercise-3

all: $(TARGET)

$(OUTPUT_DIR):
	mkdir -p $(OUTPUT_DIR)

$(TARGET): $(OUTPUT_DIR) $(OBJS)
	@# 这个注释不会被输出
	$(CC) $(OBJS) $(LDFLAGS) -o $@

%.o: %.c
	@# 编译目标文件的注释也不会被输出
	$(CC) $(CFLAGS) -c $< -o $@


clean:
	@# 清理命令的注释同样不会被输出
	rm -f $(TARGET) $(OBJS)